import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  CreateDateColumn,
  UpdateDateColumn,
  ManyToOne,
} from 'typeorm';
import { User } from './User';
@Entity()
export class CapacityDiary {
  @PrimaryGeneratedColumn()
  id: number;

  @ManyToOne(() => User, (user) => user.capacity_diary, {
    onDelete: 'CASCADE',
  })
  user: User;

  @Column()
  user_id: number;

  /**
   * 需要喝的总量（ml）
   */
  @Column({ default: 2000, nullable: true })
  capacity_total: number;

  /**
   * 喝水记录（对象数组，包含每次喝水的时间和水量）
   */
  @Column('json', { nullable: true })
  capacity_record: { quantity: number; time: Date }[];
  //   @Column('simple-array')
  //   capacity_record: number[];

  /**
   * 剩余百分比
   * precision: 5：总共最多存储 5 位数字（包括整数部分和小数部分）
   * scale: 2：小数点后最多存储 2 位数字。
   */
  // @Column({
  //   type: 'decimal',
  //   precision: 5,
  //   scale: 2,
  //   nullable: true,
  //   default: 0,
  // })
  // progress: number;

  // 入量
  @Column({ nullable: true })
  total_input: number;

  // 出量
  @Column({ nullable: true })
  total_output: number;

  // 排便
  @Column({ nullable: true })
  defecation_volume: number;

  // 排尿
  @Column({ nullable: true })
  urination_volume: number;

  @CreateDateColumn()
  created: Date;

  @UpdateDateColumn()
  updated: Date;
}
